package com.atguigu.vue.controller;


import com.atguigu.vue.base.R;
import com.atguigu.vue.bean.Schedule;
import com.atguigu.vue.service.ScheduleService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;

@RestController
//@RestController =@ResponseBody+ @Controller
//被 @Controller 注解标记的类会被自动注入到 Spring 的 IOC 容器中，
// 成为容器管理的 Bean

@RequestMapping("/")
//@RequestMapping 是通用的请求映射注解，
// 可以匹配任意 HTTP 方法（GET、POST、PUT、DELETE 等），
// 也可通过属性限制只匹配特定方法。

//@GetMapping 是 @RequestMapping 的派生注解，
// 专门用于匹配 HTTP GET 方法的请求，
// 等价于 @RequestMapping(method = RequestMethod.GET)。


@Slf4j
public class ScheduleController {
    @Autowired
    private ScheduleService scheduleService;

    @GetMapping
    public R<List<Schedule>> findAll() {
        return R.ok(scheduleService.getAll());
    }



    //分页查询
    @GetMapping("/page/{pageNum}/{pageSize}")
    public R<HashMap<Object, Object>> Page(@PathVariable Integer pageNum,
                                           @PathVariable Integer pageSize) {
        Page<Schedule> page = PageHelper.startPage(pageNum, pageSize);
        System.out.println(page);
        scheduleService.getAll();
        HashMap<Object, Object> map = new HashMap<>();
        map.put("pages", page.getPages());
        map.put("total", page.getTotal());
        map.put("list", page.getResult());
        return R.ok(map);
    }
}